package com.zlsy.learning.leetcode.simple;

/**
 * @author zhouliang
 * @date 2020/03/14
 **/
public class ReverseLeftWords {

    /**
     * 58: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。
     * 比如，输入字符串"abcdefg"和数字2，该函数将返回左旋转两位得到的结果"cdefgab"。
     *
     * @param args
     */

    public static void main(String[] args) {
//        输入: s = "abcdefg", k = 2
        String s = "lrloseumgh";
        int k = 6;
        System.err.println(reverseLeftWords(s, k));
    }


    /**
     * 执行用时：4 ms
     * 内存消耗：41.2 MB
     * @param s
     * @param n
     * @return
     */
    public static String reverseLeftWords(String s, int n) {
        char[] chars = s.toCharArray();
        boolean flag = true;
        StringBuilder a = new StringBuilder();
        StringBuilder b = new StringBuilder();
        for (int i = 0; i < chars.length; i++) {
            if (flag && n >= (i + 1)) {
                a.append(chars[i]);
                if (n == (i + 1)) {
                    flag = false;
                }
            } else {
                b.append(chars[i]);
            }
        }
        return b.append(a).toString();
    }
}
